From 84b259d0768e6fcccb5e5d2b0ed05c9bd3beaab1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 19 Feb 2011 13:27:51 -0500 Subject: [PATCH] Make gtk_combo_box_text_get_active_text() behave as documented If there is an entry, it is supposed to return the contents of the entry. Pointed out by Allin Cottrell, https://bugzilla.gnome.org/show_bug.cgi?id=642681 --- gtk/gtkcomboboxtext.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gtk/gtkcomboboxtext.c b/gtk/gtkcomboboxtext.c index ba6c051179..f1102cb1af 100644 --- a/gtk/gtkcomboboxtext.c +++ b/gtk/gtkcomboboxtext.c @@ -563,12 +563,13 @@ gtk_combo_box_text_remove_all (GtkComboBoxText *combo_box) * gtk_combo_box_text_get_active_text: * @combo_box: A #GtkComboBoxText * - * Returns the currently active string in @combo_box, or %NULL if none - * is selected. If @combo_box contains an entry, this function will return - * its contents (which will not necessarily be an item from the list). + * Returns the currently active string in @combo_box, or %NULL + * if none is selected. If @combo_box contains an entry, this + * function will return its contents (which will not necessarily + * be an item from the list). * - * Returns: a newly allocated string containing the currently active text. - * Must be freed with g_free(). + * Returns: a newly allocated string containing the currently + * active text. Must be freed with g_free(). * * Since: 2.24 */ @@ -580,7 +581,14 @@ gtk_combo_box_text_get_active_text (GtkComboBoxText *combo_box) g_return_val_if_fail (GTK_IS_COMBO_BOX_TEXT (combo_box), NULL); - if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo_box), &iter)) + if (gtk_combo_box_get_has_entry (GTK_COMBO_BOX (combo_box))) + { + GtkWidget *entry; + + entry = gtk_bin_get_child (GTK_BIN (combo_box)); + text = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry))); + } + else if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (combo_box), &iter)) { GtkTreeModel *model; gint text_column; -- 2.30.2